package dancetiktokenumsmongo

const (
	DancePetChangeTypeAdd     = 1 //增加
	DancePetChangeTypeReduced = 2 //减少

	// 宠物获取记录
	DancePetGainLogSourceOpenEgg             = 1 //开宠物蛋获得 todo 旧数据
	DancePetGainLogSourcePetCollectAllReward = 2 //宠物集齐奖励获得 todo 旧数据

	DancePetAttributeResetDay         = 1 // 每日恢复 todo 旧数据
	DancePetAttributeResetActivityEnd = 2 // 活动结束重置

	// 主播战队状态
	DanceTeamHostStatusCreate   = 1 //创建
	DanceTeamHostStatusDissolve = 2 //解散

	// 个人战队状态
	DanceTeamUserStatusCreate   = 1 //加入
	DanceTeamUserStatusDissolve = 2 //退出

	// 宠物上阵,下阵状态
	DancePetEnterPositionStatusUp   = 1 //上阵
	DancePetEnterPositionStatusDown = 2 //下阵

	// 宠物属性流转记录枚举
	DancePetPropertyChangeLogSourceEatProp         = 1 // 吃丹药获得
	DancePetPropertyChangeLogSourceWeekScript      = 2 // 每周脚本重置获得
	DancePetPropertyChangeLogSourceSlgAttackCity   = 3 // 攻城消耗扣减
	DancePetPropertyChangeLogSourceGainPetInit     = 4 // 获得宠物默认初始值
	DancePetPropertyChangeLogSourceRoomGift        = 5 // 直播间刷礼物获得
	DancePetPropertyChangeLogSourceMinuteScriptCut = 6 // 每分钟脚本扣减

	// todo 新宠物功能
	//宠物获取记录
	DancePetGetLogSourceOpenEgg = 1 //开宠物蛋获得

	// 宠物皮肤获取记录
	DancePetSkinGainLogSourceOpenEgg = 1 //开宠物蛋获得
	DancePetSkinGainLogSourceDraw    = 2 //抽奖获得

	// 开蛋中奖获取类型
	PetOpenEggDirectDraw   = 0 // 0：直抽
	PetOpenEggExchangeDraw = 1 //  1:兑换

	// 挂机状态
	DancePetTeamOnHoldLogSourceOnHolding           = 1 //  挂机中
	DancePetTeamOnHoldLogSourceOnHoldExit          = 2 //  中途离开
	DancePetTeamOnHoldLogSourceOnHoldUseSpeedyCard = 3 //  扫荡结束
	DancePetTeamOnHoldLogSourceOnHoldEnd           = 4 //  挂机结束

	// 是否使用扫荡卡
	NoUseSpeedyCard = 0 // 未使用
	UseSpeedyCard   = 1 // 已使用

	// 战队挂机,发放奖励状态
	NoOnHoldTeamPrize = 0 // 未发放
	OnHoldTeamPrize   = 1 // 已发放
)

type DancePetGainLogEnums struct {
}

var DancePetGainLogEnumsObject DancePetGainLogEnums

func (e DancePetGainLogEnums) SourceType() []int {
	return []int{
		DancePetGainLogSourceOpenEgg,
		DancePetGainLogSourcePetCollectAllReward,
	}
}

func (e DancePetGainLogEnums) SourceMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.SourceType() {
		m[s] = e.SourceString(s)
	}
	return m
}

func (e DancePetGainLogEnums) SourceString(tag int) string {
	switch tag {
	case DancePetGainLogSourceOpenEgg:
		return "开宠物蛋获得"
	case DancePetGainLogSourcePetCollectAllReward:
		return "宠物集齐奖励获得"
	default:
		return "其他"
	}
}

func (e DancePetGainLogEnums) ChangeType() []int {
	return []int{
		DancePetChangeTypeAdd,
		DancePetChangeTypeReduced,
	}
}

func (e DancePetGainLogEnums) ChangeTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ChangeType() {
		m[s] = e.ChangeTypeString(s)
	}
	return m
}

func (e DancePetGainLogEnums) ChangeTypeString(tag int) string {
	switch tag {
	case DancePetChangeTypeAdd:
		return "增加"
	case DancePetChangeTypeReduced:
		return "减少"
	default:
		return "其他"
	}
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceType() []int {
	return []int{
		DancePetPropertyChangeLogSourceEatProp,
		DancePetPropertyChangeLogSourceWeekScript,
		DancePetPropertyChangeLogSourceSlgAttackCity,
		DancePetPropertyChangeLogSourceGainPetInit,
		DancePetPropertyChangeLogSourceRoomGift,
		DancePetPropertyChangeLogSourceMinuteScriptCut,
	}
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.DancePetPropertyChangeLogSourceType() {
		m[s] = e.DancePetPropertyChangeLogSourceTypeString(s)
	}
	return m
}

func (e DancePetGainLogEnums) DancePetPropertyChangeLogSourceTypeString(tag int) string {
	switch tag {
	case DancePetPropertyChangeLogSourceEatProp:
		return "吃丹药获得"
	case DancePetPropertyChangeLogSourceWeekScript:
		return "每周脚本重置获得"
	case DancePetPropertyChangeLogSourceSlgAttackCity:
		return "攻城消耗扣减"
	case DancePetPropertyChangeLogSourceGainPetInit:
		return "获得宠物默认初始值"
	case DancePetPropertyChangeLogSourceRoomGift:
		return "直播间刷礼物获得"
	case DancePetPropertyChangeLogSourceMinuteScriptCut:
		return "每分钟脚本扣减"
	default:
		return "其他"
	}
}

func (e DancePetGainLogEnums) DancePetTeamOnHoldLogSourceType() []int {
	return []int{
		DancePetTeamOnHoldLogSourceOnHolding,
		DancePetTeamOnHoldLogSourceOnHoldExit,
		DancePetTeamOnHoldLogSourceOnHoldUseSpeedyCard,
		DancePetTeamOnHoldLogSourceOnHoldEnd,
	}
}

func (e DancePetGainLogEnums) DancePetTeamOnHoldLogSourceTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.DancePetTeamOnHoldLogSourceType() {
		m[s] = e.DancePetTeamOnHoldLogSourceTypeString(s)
	}
	return m
}

func (e DancePetGainLogEnums) DancePetTeamOnHoldLogSourceTypeString(tag int) string {
	switch tag {
	case DancePetTeamOnHoldLogSourceOnHolding:
		return "挂机中"
	case DancePetTeamOnHoldLogSourceOnHoldExit:
		return "中途离开"
	case DancePetTeamOnHoldLogSourceOnHoldUseSpeedyCard:
		return "扫荡结束"
	case DancePetTeamOnHoldLogSourceOnHoldEnd:
		return "挂机结束"
	default:
		return "其他"
	}
}
